/**
 */
package org.mro.grib.model.files.secondEdition.products;


/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Product Definition Template447</b></em>'.
 * <!-- end-user-doc -->
 *
 * <p>
 * The following features are supported:
 * <ul>
 *   <li>{@link org.mro.grib.model.files.secondEdition.products.ProductDefinitionTemplate447#getAerosolType <em>Aerosol Type</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.products.ProductDefinitionTemplate447#getTypeOfIntervalForFirstAndSecondSizes <em>Type Of Interval For First And Second Sizes</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.products.ProductDefinitionTemplate447#getScaleFactorOfFirstSize <em>Scale Factor Of First Size</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.products.ProductDefinitionTemplate447#getScaledValueOfFirstSize <em>Scaled Value Of First Size</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.products.ProductDefinitionTemplate447#getScaleFactorOfSecondSize <em>Scale Factor Of Second Size</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.products.ProductDefinitionTemplate447#getScaledValueOfSecondSize <em>Scaled Value Of Second Size</em>}</li>
 * </ul>
 * </p>
 *
 * @see org.mro.grib.model.files.secondEdition.products.ProductsPackage#getProductDefinitionTemplate447()
 * @model annotation="http://www.eclipse.org/emf/2002/GenModel description_en='Individual ensemble forecast, control and perturbed, at a\r\nhorizontal level or in a horizontal layer in a continuous or\r\nnon-continuous time interval for aerosol' note_1_en='Hours greater than 65534 will be coded as 65534.' note_2_en='The reference time in section 1 and the forecast time together define the beginning of the overall time interval.' note_3_en='An increment of zero means that the statistical processing is the result of a continuous (or near continuous) process,\r\nnot the processing of a number of discrete samples. Examples of such continuous processes are the temperatures\r\nmeasured by analogue maximum and minimum thermometers or thermographs, and the rainfall measured by a\r\nraingauge. The reference and forecast times are successively set to their initial values plus or minus the increment,\r\nas defined by the type of time increment (one of octets 63, 75, ...). For all but the innermost (last) time range, the next\r\ninner range is then processed using these reference and forecast times as the initial reference and forecast times.'"
 * @generated
 */
public interface ProductDefinitionTemplate447 extends ProductDefinitionTemplate412 {
	/**
	 * Returns the value of the '<em><b>Aerosol Type</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Aerosol Type</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Aerosol Type</em>' attribute.
	 * @see #setAerosolType(byte)
	 * @see org.mro.grib.model.files.secondEdition.products.ProductsPackage#getProductDefinitionTemplate447_AerosolType()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='Aerosol type' description_en='Aerosol type (see Code table 4.233)'"
	 * @generated
	 */
	byte getAerosolType();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.products.ProductDefinitionTemplate447#getAerosolType <em>Aerosol Type</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Aerosol Type</em>' attribute.
	 * @see #getAerosolType()
	 * @generated
	 */
	void setAerosolType(byte value);

	/**
	 * Returns the value of the '<em><b>Type Of Interval For First And Second Sizes</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Type Of Interval For First And Second Sizes</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Type Of Interval For First And Second Sizes</em>' attribute.
	 * @see #setTypeOfIntervalForFirstAndSecondSizes(byte)
	 * @see org.mro.grib.model.files.secondEdition.products.ProductsPackage#getProductDefinitionTemplate447_TypeOfIntervalForFirstAndSecondSizes()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='Type of interval for first and second sizes' description_en='Type of interval for first and second sizes (see Code table 4.91)'"
	 * @generated
	 */
	byte getTypeOfIntervalForFirstAndSecondSizes();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.products.ProductDefinitionTemplate447#getTypeOfIntervalForFirstAndSecondSizes <em>Type Of Interval For First And Second Sizes</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Type Of Interval For First And Second Sizes</em>' attribute.
	 * @see #getTypeOfIntervalForFirstAndSecondSizes()
	 * @generated
	 */
	void setTypeOfIntervalForFirstAndSecondSizes(byte value);

	/**
	 * Returns the value of the '<em><b>Scale Factor Of First Size</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Scale Factor Of First Size</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Scale Factor Of First Size</em>' attribute.
	 * @see #setScaleFactorOfFirstSize(byte)
	 * @see org.mro.grib.model.files.secondEdition.products.ProductsPackage#getProductDefinitionTemplate447_ScaleFactorOfFirstSize()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='Scale factor of first size' description_en='Scale factor of first size'"
	 * @generated
	 */
	byte getScaleFactorOfFirstSize();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.products.ProductDefinitionTemplate447#getScaleFactorOfFirstSize <em>Scale Factor Of First Size</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Scale Factor Of First Size</em>' attribute.
	 * @see #getScaleFactorOfFirstSize()
	 * @generated
	 */
	void setScaleFactorOfFirstSize(byte value);

	/**
	 * Returns the value of the '<em><b>Scaled Value Of First Size</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Scaled Value Of First Size</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Scaled Value Of First Size</em>' attribute.
	 * @see #setScaledValueOfFirstSize(int)
	 * @see org.mro.grib.model.files.secondEdition.products.ProductsPackage#getProductDefinitionTemplate447_ScaledValueOfFirstSize()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='Scaled value of first size in metres' description_en='Scaled value of first size in metres'"
	 * @generated
	 */
	int getScaledValueOfFirstSize();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.products.ProductDefinitionTemplate447#getScaledValueOfFirstSize <em>Scaled Value Of First Size</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Scaled Value Of First Size</em>' attribute.
	 * @see #getScaledValueOfFirstSize()
	 * @generated
	 */
	void setScaledValueOfFirstSize(int value);

	/**
	 * Returns the value of the '<em><b>Scale Factor Of Second Size</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Scale Factor Of Second Size</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Scale Factor Of Second Size</em>' attribute.
	 * @see #setScaleFactorOfSecondSize(byte)
	 * @see org.mro.grib.model.files.secondEdition.products.ProductsPackage#getProductDefinitionTemplate447_ScaleFactorOfSecondSize()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='Scale factor of second size' description_en='Scale factor of second size'"
	 * @generated
	 */
	byte getScaleFactorOfSecondSize();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.products.ProductDefinitionTemplate447#getScaleFactorOfSecondSize <em>Scale Factor Of Second Size</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Scale Factor Of Second Size</em>' attribute.
	 * @see #getScaleFactorOfSecondSize()
	 * @generated
	 */
	void setScaleFactorOfSecondSize(byte value);

	/**
	 * Returns the value of the '<em><b>Scaled Value Of Second Size</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Scaled Value Of Second Size</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Scaled Value Of Second Size</em>' attribute.
	 * @see #setScaledValueOfSecondSize(int)
	 * @see org.mro.grib.model.files.secondEdition.products.ProductsPackage#getProductDefinitionTemplate447_ScaledValueOfSecondSize()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='Scaled value of second size in metres' description_en='Scaled value of second size in metres'"
	 * @generated
	 */
	int getScaledValueOfSecondSize();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.products.ProductDefinitionTemplate447#getScaledValueOfSecondSize <em>Scaled Value Of Second Size</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Scaled Value Of Second Size</em>' attribute.
	 * @see #getScaledValueOfSecondSize()
	 * @generated
	 */
	void setScaledValueOfSecondSize(int value);

} // ProductDefinitionTemplate447
